package com.example.logindemo.service;

import com.example.logindemo.entity.RunOrder;
import java.util.List;
import java.util.Optional;

public interface RunOrderService {
    
    // 创建跑单
    RunOrder createRunOrder(RunOrder runOrder);
    
    // 根据ID获取跑单
    Optional<RunOrder> getRunOrderById(Integer id);
    
    // 根据跑单编号获取跑单
    Optional<RunOrder> getRunOrderByRunOrderId(String runOrderId);
    
    // 根据用户ID获取跑单列表
    List<RunOrder> getRunOrdersByUserId(Integer userId);
    
    // 获取所有跑单
    List<RunOrder> getAllRunOrders();
    
    // 根据状态获取跑单列表
    List<RunOrder> getRunOrdersByStatus(String status);
    
    // 更新跑单信息
    RunOrder updateRunOrder(RunOrder runOrder);
    
    // 更新跑单状态
    void updateRunOrderStatus(String runOrderId, String status);
    
    // 更新评价状态
    void updateReviewStatus(String runOrderId, String reviewStatus);
    
    // 删除跑单
    void deleteRunOrder(Integer id);
    
    // 搜索跑单
    List<RunOrder> searchRunOrders(String keyword);
    
    // 统计用户跑单总数
    long countRunOrdersByUserId(Integer userId);
    
    // 统计用户完成的跑单数量
    long countCompletedRunOrdersByUserId(Integer userId);
}